// 高级函数 函数参数是函数  函数返回是函数
// AOP 面向切片编程 不破坏原函数 再添加其他逻辑
function say(who){
  console.log(who+'hello');
}
Function.prototype.before = function (beforeFunc){

  // return function (){
  //   beforeFunc();
  //   this(); //就会指向window
  // }

  //箭头函数中没有this 也没有args
  return  (...args)=>{
    beforeFunc();
    this(...args); //就会指向window
  }
}
let beforeSay = say.before(()=>{
  console.log('开始初始化')
})
beforeSay('我');
//

